
package phasebookws;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for userprofile complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="userprofile">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="age" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/>
 *         &lt;element name="email" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="friends1" type="{http://ejb.api/}friend" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="friends2" type="{http://ejb.api/}friend" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="gender" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="locality" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="logins" type="{http://ejb.api/}login" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="messageboards" type="{http://ejb.api/}messageboard" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *         &lt;element name="notify_Digest" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="notify_OnChange" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
 *         &lt;element name="photoid" type="{http://ejb.api/}userphoto" minOccurs="0"/>
 *         &lt;element name="userId" type="{http://www.w3.org/2001/XMLSchema}int"/>
 *         &lt;element name="usermessages" type="{http://ejb.api/}usermessage" maxOccurs="unbounded" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "userprofile", propOrder = {
    "age",
    "email",
    "friends1",
    "friends2",
    "gender",
    "locality",
    "logins",
    "messageboards",
    "name",
    "notifyDigest",
    "notifyOnChange",
    "photoid",
    "userId",
    "usermessages"
})
public class Userprofile {

    protected BigDecimal age;
    protected String email;
    @XmlElement(nillable = true)
    protected List<Friend> friends1;
    @XmlElement(nillable = true)
    protected List<Friend> friends2;
    protected String gender;
    protected String locality;
    @XmlElement(nillable = true)
    protected List<Login> logins;
    @XmlElement(nillable = true)
    protected List<Messageboard> messageboards;
    protected String name;
    @XmlElement(name = "notify_Digest")
    protected Boolean notifyDigest;
    @XmlElement(name = "notify_OnChange")
    protected Boolean notifyOnChange;
    protected Userphoto photoid;
    protected int userId;
    @XmlElement(nillable = true)
    protected List<Usermessage> usermessages;

    /**
     * Gets the value of the age property.
     * 
     * @return
     *     possible object is
     *     {@link BigDecimal }
     *     
     */
    public BigDecimal getAge() {
        return age;
    }

    /**
     * Sets the value of the age property.
     * 
     * @param value
     *     allowed object is
     *     {@link BigDecimal }
     *     
     */
    public void setAge(BigDecimal value) {
        this.age = value;
    }

    /**
     * Gets the value of the email property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getEmail() {
        return email;
    }

    /**
     * Sets the value of the email property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setEmail(String value) {
        this.email = value;
    }

    /**
     * Gets the value of the friends1 property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the friends1 property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getFriends1().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link Friend }
     * 
     * 
     */
    public List<Friend> getFriends1() {
        if (friends1 == null) {
            friends1 = new ArrayList<Friend>();
        }
        return this.friends1;
    }

    /**
     * Gets the value of the friends2 property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the friends2 property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getFriends2().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link Friend }
     * 
     * 
     */
    public List<Friend> getFriends2() {
        if (friends2 == null) {
            friends2 = new ArrayList<Friend>();
        }
        return this.friends2;
    }

    /**
     * Gets the value of the gender property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getGender() {
        return gender;
    }

    /**
     * Sets the value of the gender property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setGender(String value) {
        this.gender = value;
    }

    /**
     * Gets the value of the locality property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getLocality() {
        return locality;
    }

    /**
     * Sets the value of the locality property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setLocality(String value) {
        this.locality = value;
    }

    /**
     * Gets the value of the logins property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the logins property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getLogins().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link Login }
     * 
     * 
     */
    public List<Login> getLogins() {
        if (logins == null) {
            logins = new ArrayList<Login>();
        }
        return this.logins;
    }

    /**
     * Gets the value of the messageboards property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the messageboards property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getMessageboards().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link Messageboard }
     * 
     * 
     */
    public List<Messageboard> getMessageboards() {
        if (messageboards == null) {
            messageboards = new ArrayList<Messageboard>();
        }
        return this.messageboards;
    }

    /**
     * Gets the value of the name property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getName() {
        return name;
    }

    /**
     * Sets the value of the name property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setName(String value) {
        this.name = value;
    }

    /**
     * Gets the value of the notifyDigest property.
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isNotifyDigest() {
        return notifyDigest;
    }

    /**
     * Sets the value of the notifyDigest property.
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setNotifyDigest(Boolean value) {
        this.notifyDigest = value;
    }

    /**
     * Gets the value of the notifyOnChange property.
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isNotifyOnChange() {
        return notifyOnChange;
    }

    /**
     * Sets the value of the notifyOnChange property.
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setNotifyOnChange(Boolean value) {
        this.notifyOnChange = value;
    }

    /**
     * Gets the value of the photoid property.
     * 
     * @return
     *     possible object is
     *     {@link Userphoto }
     *     
     */
    public Userphoto getPhotoid() {
        return photoid;
    }

    /**
     * Sets the value of the photoid property.
     * 
     * @param value
     *     allowed object is
     *     {@link Userphoto }
     *     
     */
    public void setPhotoid(Userphoto value) {
        this.photoid = value;
    }

    /**
     * Gets the value of the userId property.
     * 
     */
    public int getUserId() {
        return userId;
    }

    /**
     * Sets the value of the userId property.
     * 
     */
    public void setUserId(int value) {
        this.userId = value;
    }

    /**
     * Gets the value of the usermessages property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the usermessages property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getUsermessages().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link Usermessage }
     * 
     * 
     */
    public List<Usermessage> getUsermessages() {
        if (usermessages == null) {
            usermessages = new ArrayList<Usermessage>();
        }
        return this.usermessages;
    }

}
